home *** CD-ROM | disk | FTP | other *** search
- /*--------------------------------bullet.c----------------------------------*/
- /*
- Copyright 1992 David Conger
- */
-
-
-
- /*------------------------------include files-------------------------------*/
-
- #include "bullet.h"
- #include <graphics.h>
-
- /*----------------------------end include files-----------------------------*/
-
-
-
-
-
- /*------------------------------draw_bullet---------------------------------*/
-
- void draw_bullet(bullet *bull)
- {
- if (bull->bullet_exists)
- {
- switch (bull->current_direction)
- {
- case BULLET_UP:
- putpixel(get_point_col(bull->current_position),
- get_point_row(bull->current_position),
- bull->color);
- putpixel(get_point_col(bull->current_position)+1,
- get_point_row(bull->current_position)+1,
- bull->color);
- putpixel(get_point_col(bull->current_position),
- get_point_row(bull->current_position)+1,
- bull->color);
- putpixel(get_point_col(bull->current_position)-1,
- get_point_row(bull->current_position)+1,
- bull->color);
- putpixel(get_point_col(bull->current_position),
- get_point_row(bull->current_position)+2,
- bull->color);
- break;
-
- case BULLET_DOWN:
- putpixel(get_point_col(bull->current_position),
- get_point_row(bull->current_position),
- bull->color);
- putpixel(get_point_col(bull->current_position)-1,
- get_point_row(bull->current_position)-1,
- bull->color);
- putpixel(get_point_col(bull->current_position),
- get_point_row(bull->current_position)-1,
- bull->color);
- putpixel(get_point_col(bull->current_position)+1,
- get_point_row(bull->current_position)-1,
- bull->color);
- putpixel(get_point_col(bull->current_position),
- get_point_row(bull->current_position)-2,
- bull->color);
- }
- }
- }
-
- /*----------------------------end draw_bullet-------------------------------*/
-
-
-
-
-
- /*-------------------------------erase_bullet-------------------------------*/
-
- void erase_bullet(bullet *bull)
- {
- int save_color;
-
-
- save_color=bull->color;
- bull->color=BACKGROUND_COLOR;
- draw_bullet(bull);
- bull->color=save_color;
- }
-
- /*-----------------------------end erase_bullet-----------------------------*/
-
-
-
-
-
- /*--------------------------------move_bullet-------------------------------*/
-
- void move_bullet(bullet *bull)
- {
- erase_bullet(bull);
-
- switch (bull->current_direction)
- {
- case BULLET_UP:
- set_point_row(bull->current_position,
- get_point_row(bull->current_position)-1);
- break;
-
- case BULLET_DOWN:
- set_point_row(bull->current_position,
- get_point_row(bull->current_position)+1);
- break;
-
- }
- draw_bullet(bull);
- }
-
- /*-----------------------------end move_bullet------------------------------*/
-
-
-
-
-
- /*----------------------------bullet_collision------------------------------*/
-
- boolean bullet_collision(bullet *bull)
- {
- boolean collision=FALSE;
-
-
- if (bull->bullet_exists)
- {
- switch (bull->current_direction)
- {
- case BULLET_UP:
- if ((getpixel(get_point_col(bull->current_position),
- get_point_row(bull->current_position)-1) !=
- BACKGROUND_COLOR) ||
- (getpixel(get_point_col(bull->current_position)+1,
- get_point_row(bull->current_position)) !=
- BACKGROUND_COLOR) ||
- (getpixel(get_point_col(bull->current_position)-1,
- get_point_row(bull->current_position)) !=
- BACKGROUND_COLOR))
- {
- collision=TRUE;
- }
-
- break;
-
- case BULLET_DOWN:
- if ((getpixel(get_point_col(bull->current_position),
- get_point_row(bull->current_position)+1) !=
- BACKGROUND_COLOR) ||
- (getpixel(get_point_col(bull->current_position)-1,
- get_point_row(bull->current_position))!=
- BACKGROUND_COLOR) ||
- (getpixel(get_point_col(bull->current_position)+1,
- get_point_row(bull->current_position))!=
- BACKGROUND_COLOR))
- {
- collision=TRUE;
- }
- break;
- }
- }
- return(collision);
- }
-
- /*--------------------------end bullet_collision----------------------------*/
-
-
-
- /*------------------------------end bullet.c--------------------------------*/